The present invention relates generally to communication management devices and methods, and in particularly to communication management devices and methods for increasing the efficiency of data transfer between computer systems.
With the prevalence of LANs, network-based business and communication have become essential and are expected to spread increasingly for the future. On the other hand, the performance of personal computers (PCs) and workstations (WSs) has remarkably improved. The industry reports almost everyday about an enhanced operating frequency of a Central Processing Unit (CPU) and the release of a new model based on new architecture introduced into the market. In this situation, distributed processing of transactions by connecting a super-high-speed server and a low-price client via a high-speed network have become possible. Formerly, servers were expensive WSs, but recently, many low-price PCs have been used in many cases. The transmission rate of a typical network, for example, Ethernet (a registered trademark of Xerox Corp.), that is substantially regarded as a standard, has now increased to 100 megabits per second (Mbps), though it was 10 Mbps just several years before. Moreover, a network interface card for 1000 Mbps and a networking device to which the card is connected have been released.
A “maximum frame data length” for transmission on a line using, for example, an Ethernet protocol (Ethernet II or IEEE 802.3) is defined and communication using frames with frame data longer than this data length are not allowed for this protocol. The frames may be discarded by the receiver. FIG. 1 is a diagram showing a server and client system. If, for example, a client [102] and a server [101] shown in FIG. 1 are connected via a LAN [103], the server [101] first checks the maximum frame data length (L) defined for the LAN [103] protocol and then sends the data [104], based on the maximum frame data length (L) setting. This was required both in order to avoid data collision on the network and to enable communication with an old device with limited storage due to the high-price of memory devices in those days.
For example, FIG. 2 shows a format for the Ethernet protocol. There is an 8 byte preamble 110, a 6 byte destination address, which includes a machine address code (MAC), a source address 114 of the sender which includes the source MAC, a length/type 2 byte field 116, an information or user data field 118, and a Frame Check Sum (FCS) 120 of 4 bytes. The length/type field 116 may be the length in bytes (46 to 1500) of the information field 118 or it may be a type designator. The type field having value 0 to 05DC (hexadecimal) is from 0 to 1500. A value such as 8100 may mean a VLAN (IEEE 802.1Q) frame. The “maximum frame data length” (L) of the Ethernet protocol is 1514 bytes, which includes the destination address 112, source address 114, length/type 116, and information 118.
Using an Internet Protocol (IP) network model as an example and FIGS. 3 and 4 for reference, data transmission from a server to a client will be detailed below.
FIG. 3 is a schematic diagram showing the detailed structures of the server and the client and illustrating how the server and the client handle data (disassembling data into segments and reassembling the segments into data). FIG. 3 shows the structures of the server [101] and the client [102] and illustrates the data transmission between them with the data [201] being disassembled into segments of the maximum frame data length (L1) that is defined for a LAN [103] protocol. Explanation begins with the server structure. The server [101] is composed of modules arranged in hierarchical structure, having AP [202] on the top hierarchy and Transmission Control Protocol/User Datagram Protocol (TCP/UDP) [203], IP [204], a driver [205], and a network interface card [208] descending in the mentioned order. World Wide Web (WWW) and mail browser software may be typically used as the AP [202]. The TCP/UDP [203] are protocols for controlling data quantity to be transferred and assuring the reliability of data transfer and either TCP or UDP may be selectively used for any service of communication. The TCP/UDP [203] are typical protocols used for data communications over IP networks. Although there is difference between TCP and UDP, the combination of TCP/UDP means that either of TCP/UDP may be applied. Although the TCP/UDP [203] add a header to send data [201], the header is omitted in FIG. 2. The IP [204] carries out the following: computing an optimum route of data to be transferred (for example, determining the next networking device to which the server hands over the data), disassembling the data into segments of the maximum frame data length, generating headers required for data transfer and adding the headers to the data segments. Thus, the IP [204] holds a routing table [206] in which routing information is retained. Any networking device to which routing computation is to apply is assigned its identifier, namely its address per IP.
FIGS. 4A, 4B and 4C show the structures of a header, a routing table, and a link setup table.
FIG. 4A is a schema showing the structure of a header that the IP adds to a data segment. This schema represents a header [217] that the IP [204] generates and adds to a data segment. The header [217] includes a physical address that is assigned to each network interface card [208] to indicate the origin or destination of data to be transmitted over the LAN [103], a sender address [302] that is a virtual address (assigned to the above-mentioned IP [204]) to indicate the origin or destination of data to be transmitted over the LAN [103], a destination address [303], and information [304]. In the information field, a flag to indicate whether the data is disassembled, which will be described later, and a value that is used to check for destroyed data are stored. The physical address [301] is derived from the destination address [303] in an intermediate (sublayer) between the IP [204] and the driver [205] through the use of an Address Resolution Protocol (ARP) which is standardized by the Internet Engineering Task Force (IETF) and defined in Request for Comments (RFC) 826. For illustration purposes only, it is assumed that the sublayer is part of the IP [204] and that the IP also adds the physical address [301] to the header. The driver [205] is to control the network interface card [208] and one piece of the driver is required for one network interface card [208] or a plurality of network interface cards [208]. The driver [205] holds the information about the LAN [103] as the link setup information. The link setup information is stored into a link setup table [207] and each driver holds this table.
FIG. 4B is a schema showing the structure of the routing table that the IP holds. This schema represents the routing table [206] into which routing information is stored. As shown, the routing table [206] may contain a plurality of sets of entries because the server is assumed to communicate with a plurality of other end devices. The routing table [206] contains the following entries: a destination address [401] of the other end of a communication path, a NextHop address [402] to indicate the next device to which the data is transmitted, an upward interface (interface is abbreviated to I/F hereinafter) with driver [403] to indicate an interface (generally, a function pointer) with a driver to be used to send the data, and data length [404] to indicate the maximum frame data length defined for the LAN to which the network interface card used by the driver is connected. The destination address [402] and the NextHop address [402] are addresses that are assigned to the above-mentioned IP [204]. The data length [404] is given in the way that the IP [204] reads the corresponding value in the link setup table [207] which will be described below and writes it into the routing table [206]. The above routing information may be given in ways; it may be either dynamically exchanged between networking devices or statistically set by a network administrator.
FIG. 4C is a schema showing the structure of the link setup table that the driver holds. This schema represents the link setup table [207] containing the following entries: device ID address [501] that is assigned to the IP [204] under which the driver [205] operates, data length [502] to indicate the maximum frame data length defined for the LAN [103] to which the network interface card [208] under the control of the driver [205] is connected, and statistics [503] such as the count of data sent and received though the driver [205]. The statistics [503] are updated when data is sent or received through the driver [205], whereas the remaining ones may be manually set or automatically written by loading the stored values from disk storage each time the device is booted. The network interface card [208] is needed for data sending and reception via the LAN [103] and is available with various types for the types of LAN [103].
On the other hand, the client [102] is also composed of corresponding modules arranged in similar hierarchical structure, having AP [209], TCP/UDP [210], IP [211], a driver [212], and a network interface card [213]. The IP [211] holds a routing table [218] and the driver [212] holds a link setup table [219]. In FIG. 2 the address assigned to the server [101] is marked address 1 and the address assigned to the client [102] address 2 for illustrative purposes. Address 1 is retained in the link setup table of the server and address 2 is retained in the link setup table of the client.
Next, actual data send/receive operation will be explained below. The maximum frame data length that is set for the LAN [103] is assumed to be L1. Data [201] generated by the AP [202] of the server [101] is delivered to the TCP/UDP [203] with the address information for the other end to which the data is to be transmitted being added thereto. Because the other end is the client [102] in the case of FIG. 2, the address information is address 2. The TCP/UDP [203] performs processing such as controlling the quantity of data to be transferred and adding a header to the data and then delivers the data [201] to the IP [204]. The IP [204] searches the routing table [206] with the search key of the address information given from the AP [202] in order to determine a route, thereby obtaining the NextHop address [402], upward I/F with driver [403] for the driver [205] to which the data [201] is to be delivered, and the data length [404]. Then, the IP [204] refers to the link setup table [207] held by the driver [205] via the upward I/F with driver [403] obtained as the result of the above search operation and thereby obtains data length [502]. The IP [204] compares two values of the obtained data length and selects the shorter data length as actual send data length and then disassembles the data [201] into segments of the selected length. In the case of FIG. 2, the server [101] and the client [102] are directly connected, and therefore the two values of the obtained data length are equal. For the case of FIG. 2, because the maximum frame data length set for the LAN [103] is L1, the actual send data length is L1. Note that the length of L1 includes the header [217]. For each of the data segments, the information that it is a segment into which the data has been disassembled is written into the information [304] field of the header. Specifically, the IP [204] disassembles the data into data 1 [214], data 2 [215] (each includes the header [217] and its data length is L1), and data 3 (which includes the header [217] and its data length is Ln) and delivers them to the driver [205]. Ln is the length of the last data segment remaining after the data is disassembled into the segments of L1 and varies depending on the original data length, but not exceeding the L1. If the last data is less than L1, the empty portion of its frame may be packed with any data so that the last data will meet the data length of L1. The driver [205] delivers each of the data segments delivered from the IP [204] to the network interface card [208] and issues a request to send to the network interface card [208]. The network interface card [208] transmits the data delivered thereto over the LAN [103], when the processing of the server [101] is complete.
The data received by the client [102] via the LAN [102] is delivered through the network interface card [213] and the driver [212] to the IP [211]. The IP [211] checks the information [304] field of the header of the received data, judges the received data to be a data segment of data, and waits for the arrival of the remaining part of the data. When all the data segments have arrived at the client [102], the IP [211] removes the headers [217] from these data segments, reassembles the segments into the whole data, and delivers the data to the TCP/UDP [210]. The TCP/UDP [210] delivers the data [201] to the AP [209], when the processing of the client is complete and a spell of data transfer operation between the server [101] and the client [102] terminates.
The following discusses the transmission of data whose length exceeds the maximum frame data length defined per LAN protocol, which is a better choice in some cases. Due to the prevalence of LANs and the diversification of the data transmitting over LANs, the “increase of the quantity of data to be transferred” over the LANs is significant. Specifically, this is because the communications using WWW and the transfer of picture and/or sound data has increased. During the time when data transferred via networks was mostly text data (in early 1990's and before), the quantity of the data to be transferred was on the order of hundreds of bytes to a few kilobytes. Because most of the data transferred was less than the maximum information length (1500 bytes) defined for Ethernet, it was not necessary to consider disassembling the data to be transferred into segments and the overhead accompanied by that. During the late 1990's, however, general users have enjoyed transmitting picture and/or sound data (megabytes of data) over networks and the problem of the maximum frame data length defined for the LANs has become evident. If, for example, data of one megabyte is transferred over the Ethernet (whose maximum information length=1500 bytes), the number of packets to be transmitted over Ethernet (the number is obtained by dividing the data to be transferred by the maximum information length) is:N=1,000,000/1,500=some 666  (1)
On the other hand, the time taken for a device (PC, WS, router, etc.) that sends and receives data to process the data to be transferred, or in other words, CPU processing load (P) depends on the number of packets (N) and data length (L). P is given by:P=a* N+b*L(where a and b are device-dependent constants)  (2)
In equation (2), the length (L) of data to be transferred is constant (in the example, L=1 Meg), and independent of the maximum information length, whereas the number of packets (N) decreases if the maximum information length increases. In the case of the above data of one megabyte, by comparison with the number of packets (N) of about 666 represented in equation (1), the first term of equation (2), i.e., “a * N,” can be reduced to about one by increasing the maximum information length to about 1 Meg, and consequently the CPU load (P) can be reduced to a great extent. Because a factor that determines constant a in equation (2) is receive interrupt processing that occurs whenever a frame arrives at the device, the constant a is generally greater for the receiving device. If a large volume of data, i.e., frames, arrives at the receiving end for a short time, the operation of the receiving device may fail in the worst case.
In the current circumstances where the transfer of a large volume of data is needed, extending the information length of a frame (for example, to 9000 bytes) over and above the maximum information length of a frame defined per LAN protocol (e.g., 1500 bytes for Ethernet) is very important and produces very beneficial results.
As another example of previous related technology, Alteon WebSystems, Inc., a network vendor of San Jose, Calif. has developed a network interface card and a LAN switch that can handle extended information length frames (called “jumbo frames”) and supplies them to the market The frame sizing technology of Alteon will be discussed below. Ethernet and most of the other communication protocols have a predetermined “maximum frame data length” within which data transfer is possible. Thus, data longer than the “maximum frame data length” (such as image data on WWW data) must be disassembled into segments of “maximum length” at the sending terminal or at a networking device (router) between the sender and the recipient of the data. This disassembly of data, however, increases the “number of packets” that are transmitted over the lines and consequently the processing time for the data, which depends on the number of packets (such as interrupt processing to be handled by OS), also increases. Aiming at decreasing the processing load, Alteon extended the “maximum frame data length” assigned to lines using their proprietary technology. Thereby, specifically for the Ethernet lines, the frame information size of 1500 bytes is extended to 9000 bytes (“jumbo frame”).
Following data frame extension, the other end of the transmission path to which the frame extension applies must be notified that the “maximum frame data length” has been extended. To implement this notification, Alteon uses “auto negotiation” provided as standard to its Ethernet equipment (partially implemented by its proprietary technology) (. If all devices on a physical line are Alteon devices, for example between a server and backup server with Alteon network cards then jumbo frames are exchanged. Both servers have their frames tagged (in accordance with IEEE 802.1Q) as belonging to the same Virtual LAN (VLAN). If there is a device with a network card that can only use standard frames, i.e., frames with equal to or less than the “maximum frame data length,” for example, the typical PC LAN card, connected to a server with the Alteon card then standard frames are exchanged. This is a non-VLAN case. There is a problem in a mixed LAN with both VLAN and non-VLAN devices. For example, let a server and back-up server communicate by jumbo frames using VLAN and let the server communicate with a client using non-VLAN and a standard frame. While the server may transmit standard and jumbo frames over one physical line, this line must connect to an Alteon LAN switch, which then sends the frames to the back-up server or to the client. Thus there is a need for a simpler, less costly solution.
Cisco Systems, Inc., of San Jose, Calif. has also produced a LAN Switch (Catalyst 6000 Family,) which supports jumbo frames. Each port connected to a line may be set for either jumbo or standard but not both.
Thus there is a need for efficient techniques that have reasonable cost and that provide for high data transfer between servers, while providing for normal client-server communications on a LAN.